package com.ruoyi.yard.domain;

import java.util.List;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 发货计划对象 delivery_plan_info
 * 
 * @author ruoyi
 * @date 2022-09-05
 */
public class DeliveryPlanInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long id;

    /** 发货信息编号 */
    @Excel(name = "发货信息编号")
    private String deliveryPlanNo;

    /** 项目编号 */
    @Excel(name = "项目编号")
    private String projectNo;

    /** 状态(0未送检、1已送检、2通过、3被驳回、4已完成) */
    @Excel(name = "状态(0未送检、1已送检、2通过、3被驳回、4已完成)")
    private Integer deliveryPlanState;

    /** 备注 */
    @Excel(name = "备注")
    private String comment;

    /** 发货时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "发货时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date deliverGoodsTime;

    /** 审批人 */
    @Excel(name = "审批人")
    private String approverBy;

    /** 审批时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "审批时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date approverTime;

    /** 要货单位 */
    @Excel(name = "要货单位")
    private String needCompany;

    /** 收货地址 */
    @Excel(name = "收货地址")
    private String receivingAddress;

    /** 发货计划_构件信息 */
    private List<DeliveryCompRef> deliveryCompRefList;


    /////////////////////////
    /** 项目编号 */
    @Excel(name = "项目编号")
    private String projectName;

    /** 计划数量 */
    @Excel(name = "计划数  量")
    private Long planCount;

    /** 实际数量 */
    @Excel(name = "实际数量")
    private Long actualCount;

    /** 计划重量 */
    @Excel(name = "计划重量")
    private Double planWeight;

    /** 实际重量 */
    @Excel(name = "实际重量")
    private Double actualWeight;

    /** 构件名称 */
    @Excel(name = "构件名称")
    private String compomentName;

    /** 开始发货时间 */
    private Date beginDeliverGoodsTime;
    /** 结束发货时间 */
    private Date endDeliverGoodsTime;

    /** 发货单号 */
    private String waybillNo;

    /** 构件名称或编号 */
    private String compWarehouseName;

    /** 构件信息 */
    private List<CompWarehouseInfo> compWarehouseInfoList;
    /** 发货单信息 */
    private List<WaybillInfo> waybillInfoList;

    /////////////////////////


    public String getCompWarehouseName() {
        return compWarehouseName;
    }

    public void setCompWarehouseName(String compWarehouseName) {
        this.compWarehouseName = compWarehouseName;
    }

    public String getWaybillNo() {
        return waybillNo;
    }

    public void setWaybillNo(String waybillNo) {
        this.waybillNo = waybillNo;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setDeliveryPlanNo(String deliveryPlanNo) 
    {
        this.deliveryPlanNo = deliveryPlanNo;
    }

    public String getDeliveryPlanNo() 
    {
        return deliveryPlanNo;
    }
    public void setProjectNo(String projectNo) 
    {
        this.projectNo = projectNo;
    }

    public String getProjectNo() 
    {
        return projectNo;
    }
    public void setDeliveryPlanState(Integer deliveryPlanState)
    {
        this.deliveryPlanState = deliveryPlanState;
    }

    public Integer getDeliveryPlanState()
    {
        return deliveryPlanState;
    }
    public void setComment(String comment) 
    {
        this.comment = comment;
    }

    public String getComment() 
    {
        return comment;
    }
    public void setDeliverGoodsTime(Date deliverGoodsTime) 
    {
        this.deliverGoodsTime = deliverGoodsTime;
    }

    public Date getDeliverGoodsTime() 
    {
        return deliverGoodsTime;
    }
    public void setApproverBy(String approverBy) 
    {
        this.approverBy = approverBy;
    }

    public String getApproverBy() 
    {
        return approverBy;
    }
    public void setApproverTime(Date approverTime) 
    {
        this.approverTime = approverTime;
    }

    public Date getApproverTime() 
    {
        return approverTime;
    }
    public void setNeedCompany(String needCompany) 
    {
        this.needCompany = needCompany;
    }

    public String getNeedCompany() 
    {
        return needCompany;
    }
    public void setReceivingAddress(String receivingAddress) 
    {
        this.receivingAddress = receivingAddress;
    }

    public String getReceivingAddress() 
    {
        return receivingAddress;
    }

    public List<DeliveryCompRef> getDeliveryCompRefList()
    {
        return deliveryCompRefList;
    }

    public void setDeliveryCompRefList(List<DeliveryCompRef> deliveryCompRefList)
    {
        this.deliveryCompRefList = deliveryCompRefList;
    }

    public String getProjectName() {
        return projectName;
    }

    public void setProjectName(String projectName) {
        this.projectName = projectName;
    }

    public Long getPlanCount() {
        return planCount;
    }

    public void setPlanCount(Long planCount) {
        this.planCount = planCount;
    }

    public Long getActualCount() {
        return actualCount;
    }

    public void setActualCount(Long actualCount) {
        this.actualCount = actualCount;
    }

    public Double getPlanWeight() {
        return planWeight;
    }

    public void setPlanWeight(Double planWeight) {
        this.planWeight = planWeight;
    }

    public Double getActualWeight() {
        return actualWeight;
    }

    public void setActualWeight(Double actualWeight) {
        this.actualWeight = actualWeight;
    }

    public List<CompWarehouseInfo> getCompWarehouseInfoList() {
        return compWarehouseInfoList;
    }

    public void setCompWarehouseInfoList(List<CompWarehouseInfo> compWarehouseInfoList) {
        this.compWarehouseInfoList = compWarehouseInfoList;
    }

    public List<WaybillInfo> getWaybillInfoList() {
        return waybillInfoList;
    }

    public void setWaybillInfoList(List<WaybillInfo> waybillInfoList) {
        this.waybillInfoList = waybillInfoList;
    }

    public String getCompomentName() {
        return compomentName;
    }

    public void setCompomentName(String compomentName) {
        this.compomentName = compomentName;
    }

    public Date getBeginDeliverGoodsTime() {
        return beginDeliverGoodsTime;
    }

    public void setBeginDeliverGoodsTime(Date beginDeliverGoodsTime) {
        this.beginDeliverGoodsTime = beginDeliverGoodsTime;
    }

    public Date getEndDeliverGoodsTime() {
        return endDeliverGoodsTime;
    }

    public void setEndDeliverGoodsTime(Date endDeliverGoodsTime) {
        this.endDeliverGoodsTime = endDeliverGoodsTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("deliveryPlanNo", getDeliveryPlanNo())
            .append("projectNo", getProjectNo())
            .append("deliveryPlanState", getDeliveryPlanState())
            .append("comment", getComment())
            .append("deliverGoodsTime", getDeliverGoodsTime())
            .append("createTime", getCreateTime())
            .append("createBy", getCreateBy())
            .append("updateTime", getUpdateTime())
            .append("updateBy", getUpdateBy())
            .append("approverBy", getApproverBy())
            .append("approverTime", getApproverTime())
            .append("needCompany", getNeedCompany())
            .append("receivingAddress", getReceivingAddress())
            .append("deliveryCompRefList", getDeliveryCompRefList())
            .toString();
    }
}
